import axios from 'axios'
import router from "@/router/index.js";
import { ElMessage } from "element-plus";
//构建axios实例
const instance = axios.create({
    baseURL: 'http://localhost:8089/',
    timeout: 10000*6,
    // headers: {"content-type": "application/json"},
});

//请求和响应拦截器
// 添加请求拦截器
instance.interceptors.request.use(
    function (config) {
        //获取token
        const token = sessionStorage.getItem("token")
        if(token){
            // 在发送请求之前添加认证头
            config.headers['Authorization'] = `Bearer ${token}`;
        }
        return config;
    },
    function (error) {
        return Promise.reject(error);
    }
);

// 添加响应拦截器
instance.interceptors.response.use(
    function (response) {
        // 对响应数据进行处理
        return response.data;
    },
    function (error) {
        // 对响应错误进行处理
        if(error.response&&error.response.status===401){
            //token失效了
            sessionStorage.removeItem("token");
            sessionStorage.removeItem("userInfo");
            router.push("/login");
            ElMessage.error("token失效,请重新登录")
            return;
        }
        return Promise.reject(error);
    }
);

//导出
export default instance;